home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1995 November / CD [TECH_B].bin / tech_b / delphi / trial / disk4 / doc.pak / MASK.INT < prev    next >
Encoding:
Text File  |  1995-08-08  |  4.3 KB  |  140 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       Delphi Visual Component Library                 }
  4. {                                                       }
  5. {       Copyright (c) 1995 Borland International        }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. unit Mask;
  10.  
  11. interface
  12.  
  13. uses WinTypes, SysUtils, Classes, StdCtrls, Controls, Messages,
  14.   Forms, Graphics, Menus;
  15.  
  16. const
  17.   DefaultBlank: Char = '_';
  18.   MaskFieldSeparator: Char = ';';
  19.   MaskNoSave: Char = '0';
  20.  
  21.   mDirReverse = '!';         { removes leading blanks if true, else trailing blanks}
  22.   mDirUpperCase = '>';       { all chars that follow to upper case }
  23.   mDirLowerCase = '<';       { all chars that follow to lower case }
  24.                              { '<>' means remove casing directive }
  25.   mDirLiteral = '\';         { char that immediately follows is a literal }
  26.  
  27.   mMskAlpha = 'L';           { in US = A-Z,a-z }
  28.   mMskAlphaOpt = 'l';
  29.   mMskAlphaNum = 'A';        { in US = A-Z,a-z,0-9 }
  30.   mMskAlphaNumOpt  = 'a';
  31.   mMskAscii = 'C';           { any character}
  32.   mMskAsciiOpt = 'c';
  33.   mMskNumeric = '0';         { 0-9, no plus or minus }
  34.   mMskNumericOpt = '9';
  35.   mMskNumSymOpt = '#';       { 0-9, plus and minus }
  36.  
  37.    { intl literals }
  38.   mMskTimeSeparator = ':';
  39.   mMskDateSeparator = '/';
  40.  
  41. type
  42.  
  43.   TMaskCharType = (mcNone, mcLiteral, mcIntlLiteral, mcDirective, mcMask,
  44.     mcMaskOpt, mcFieldSeparator, mcField);
  45.   TMaskDirectives = set of (mdReverseDir, mdUpperCase, mdLowerCase,
  46.     mdLiteralChar);
  47.  
  48. type
  49. { Exception class }
  50.   EDBEditError = class(Exception);
  51.  
  52.   TMaskedState = set of (msMasked, msReEnter, msDBSetText);
  53.  
  54. { TCustomMaskEdit }
  55.  
  56.   TCustomMaskEdit = class(TCustomEdit)
  57.   protected
  58.     procedure ReformatText(const NewMask: string);
  59.     procedure GetSel(var SelStart: Integer; var SelStop: Integer);
  60.     procedure SetSel(SelStart: Integer; SelStop: Integer);
  61.     procedure SetCursor(Pos: Integer);
  62.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  63.     procedure KeyUp(var Key: Word; Shift: TShiftState); override;
  64.     procedure KeyPress(var Key: Char); override;
  65.     function EditCanModify: Boolean; virtual;
  66.     procedure Reset; virtual;
  67.     function GetFirstEditChar: Integer;
  68.     function GetLastEditChar: Integer;
  69.     function GetNextEditChar(Offset: Integer): Integer;
  70.     function GetPriorEditChar(Offset: Integer): Integer;
  71.     function GetMaxChars: Integer;
  72.     procedure ValidateError;
  73.     procedure CheckCursor;
  74.     property EditMask: string;
  75.     property MaskState: TMaskedState;
  76.     property MaxLength: Integer;
  77.   public
  78.     constructor Create(AOwner: TComponent); override;
  79.     destructor Destroy; override;
  80.     procedure ValidateEdit;
  81.     procedure Clear;
  82.     function GetTextLen: Integer;
  83.     property IsMasked: Boolean;
  84.     property EditText: string;
  85.     property Text: string;
  86.   end;
  87.  
  88. { TMaskEdit }
  89.  
  90.   TMaskEdit = class(TCustomMaskEdit)
  91.   published
  92.     property AutoSelect;
  93.     property AutoSize;
  94.     property BorderStyle;
  95.     property CharCase;
  96.     property Color;
  97.     property Ctl3D;
  98.     property DragCursor;
  99.     property DragMode;
  100.     property Enabled;
  101.     property EditMask;
  102.     property Font;
  103.     property ImeMode;
  104.     property MaxLength;
  105.     property ParentColor;
  106.     property ParentCtl3D;
  107.     property ParentFont;
  108.     property ParentShowHint;
  109.     property PasswordChar;
  110.     property PopupMenu;
  111.     property ReadOnly;
  112.     property ShowHint;
  113.     property TabOrder;
  114.     property TabStop;
  115.     property Text;
  116.     property Visible;
  117.     property OnChange;
  118.     property OnClick;
  119.     property OnDblClick;
  120.     property OnDragDrop;
  121.     property OnDragOver;
  122.     property OnEndDrag;
  123.     property OnEnter;
  124.     property OnExit;
  125.     property OnKeyDown;
  126.     property OnKeyPress;
  127.     property OnKeyUp;
  128.     property OnMouseDown;
  129.     property OnMouseMove;
  130.     property OnMouseUp;
  131.   end;
  132.  
  133. function FormatMaskText(const EditMask: string; const Value: string): string;
  134. function MaskGetMaskSave(const EditMask: string): Boolean;
  135. function MaskGetMaskBlank(const EditMask: string): Char;
  136. function MaskGetFldSeparator(const EditMask: string): Integer;
  137.  
  138.  
  139. implementation
  140.